package com.ruoyi.system.dao;

import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.system.domain.dto.DmsValueDto;
import com.ruoyi.system.domain.vo.DmsValueVo;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

@DataSource(DataSourceType.SLAVE)
public interface DmsValueDao {

    /**
     * 查询符合条件的患者数据(通过手术判断是否卒中)
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.SsjlDto> getDmsValue();

    /**
     *
     * 根据患者流水号获取患者基本信息
     * @param hzlshList 换着流水号
     * @return 换着基本信息
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.PatientInfo> getPatientInfo(@Param("hzlshList") List<String> hzlshList);

    /**
     * 根据就诊流水号获取病案诊断信息
     * @param hzlshList
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.ZdxxInfo> getZdxx(@Param("hzlshList") List<String> hzlshList);

    /**
     * 查询出院信息
     * @param hzlshList 换着流水号
     * @return 出院信息
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.CyInfo> getCyInfo(@Param("hzlshList") List<String> hzlshList);

    /**
     * 根据患者流水号获取CT影像信息
     * @param hzlshList
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.Yxjcjl> getCt(@Param("hzlshList") List<String> hzlshList);

    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.Yizhu> getYizhu(@Param("hzlshList") List<String> hzlshList);

    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.JianYan> getJianyan(@Param("hzlshList") List<String> hzlshList);

    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.Rs> getRs(@Param("hzlshList") List<String> hzlshList);

    /**
     * 查询病例概要
     * @param startDate
     * @param endDate
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.Zyblgy> queryZyblgy( @Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);

    /**
     * 查询入院病例记录
     * @param startDate
     * @param endDate
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.Rybljl> queryRybljl(@Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);
    /**
     * 查询死亡记录信息
     * @param startDate
     * @param endDate
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.Swjlxx> querySwjlxx(@Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);
    /**
     * 查询高值耗材使用记录_基本信息
     * @param startDate
     * @param endDate
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.Gzhcsyjlxx> queryGzhcsyjlxx(@Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);
    /**
     * 查询高值耗材使用记录_耗材
     * @param startDate
     * @param endDate
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.Gzhcsyjlhc> queryGzhcsyjlhc(@Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);
    /**
     * 24h内入出院记录_基本信息
     * @param startDate
     * @param endDate
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.Hrcyjlxx> query24Hrcyjlxx(@Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);
    /**
     * 查询首次病程记录_基本信息
     * @param startDate
     * @param endDate
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.Scbcjlxx> queryScbcjlxx(@Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);
    /**
     * 查询住院诊疗临床路径记录
     * @param startDate
     * @param endDate
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.Lcljjlxx> queryLcljjlxx(@Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);
    /**
     * 查询出院小结
     * @param startDate
     * @param endDate
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.Cyxj> queryCyxj(@Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);
    /**
     * 查询检验报告
     * @param startDate
     * @param endDate
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.Jybgzb> queryJybgzb(@Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);
    /**
     * 查询检验结果指标
     * @param startDate
     * @param endDate
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.Jyjgzbb> queryJyjgzbb(@Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);

    /**
     * 查询细菌结果
     * @param startDate
     * @param endDate
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.Xjjgb> queryXjjgb(@Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);
    /**
     * 查询药敏结果
     * @param startDate
     * @param endDate
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.Ymjgb> queryYmjgb(@Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);

    /**
     * 查询检验文档采集
     * @param startDate
     * @param endDate
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.Jywdcj> queryJywdcj(@Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);
    /**
     * 查询检查文档采集
     * @param startDate
     * @param endDate
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.Jcwdcj> queryJcwdcj(@Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);
    /**
     * 查询住院病案基本信息
     * @param startDate
     * @param endDate
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.Jbxx> queryJbxx(@Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);
    /**
     * 查询住院病案辅助信息
     * @param startDate
     * @param endDate
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.Fzxx> queryFzxx(@Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);
    /**
     * 查询住院病案诊断信息
     * @param startDate
     * @param endDate
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.Zdxx> queryZdxx(@Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);

    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.Patient> queryHzxx(@Param("hzxxList")List<DmsValueDto.Hzxx> hzxxList);

    /**
     * 查询住院病案手术信息
     * @param startDate
     * @param endDate
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.Ssxx> querySsxx(@Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);
    /**
     * 查询住院病案费用信息
     * @param startDate
     * @param endDate
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.Fyxx> queryFyxx(@Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);
    /**
     * 查询住院病案首页重症监护记录
     * @param startDate
     * @param endDate
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.Icuxx> queryIcuxx(@Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);
    /**
     * 查询住院日报数据
     * @param startDate
     * @param endDate
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.Zyrb> queryZyrb(@Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);

    /**
     * 查询入院登记明细
     * @param startDate
     * @param endDate
     * @param jzlshList
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.TbZyRydjmxb> queryTbZyRydjmxb(@Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);

    /**
     * 查询住院结算明细
     * @param startDate
     * @param endDate
     * @param jzlshList
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.TbZyJsmxb> queryTbZyJsmxb(@Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);

    /**
     * 查询出院登记明细
     * @param startDate
     * @param endDate
     * @param jzlshList
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.TbZyCydjmxb> queryTbZyCydjmxb(@Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);


    /**
     * 查询门诊病历概要
     * @param startDate
     * @param endDate
     * @param jzlshList
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.TbBlMzblgy> queryTbBlMzblgy(@Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);

    /**
     * 查询手术明细
     * @param startDate
     * @param endDate
     * @param jzlshList
     * @return
     */
    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.TbSsSsmxb> queryTbSsSsmx(@Param("startDate") Date startDate, @Param("endDate")Date endDate, @Param("jzlshList")List<String> jzlshList);

    @DataSource(DataSourceType.SLAVE)
    List<DmsValueVo.MtProgress> queryMtProgress(@Param("jzlshList")List<String> jzlshList);

}
